#ifndef EXCLUDE_POLICY_H
#define EXCLUDE_POLICY_H

#include <memory>
#include "task/task_chain.h"

namespace exclude
{
class ExcludePolicy;
using ExcludePolicyConstPtr = std::shared_ptr<ExcludePolicy>;

/**
 * @brief:  互斥策略，如果要新增自定义互斥策略，需要继承此类，重写execPolicy()，然后添加到task_chain中即可
 * @author: sherlock_lht
 */
class ExcludePolicy
{
public:
    virtual bool execPolicy(task::TaskChain *task_chain) = 0;
};
}

#endif //EXCLUDE_POLICY_H
